package demo.gf.sort.quick;

/**
 * @author : GuoFei
 * @date : 2019/4/30 14:20
 */
public class TestMain {

    public static void main(String[] args) {
        int[] arr = {10, 17, 13, 14, 7, 62, 3, 4, 2, 1, 8, 9, 19};
//        System.out.println(JSON.toJSONString(arr));
        sout(arr);
        System.out.println();
        myQuickSort(arr, 0, arr.length - 1);
        System.out.println();
        sout(arr);
//        System.out.println(JSON.toJSONString(arr));
    }

    public static int run = 0;

    public static void sout(int[] arr) {
        for (int i : arr) {
            System.out.print(i + "\t");
        }
        System.out.println();
    }

    public static void myQuickSort(int[] a, int low, int high) {
        int temp;
//        for (int i = 0; i < a.length-1; i++) {
//            for (int j = i+1; j < a.length; j++) {
//                if (a[i] > a[j]) {
//                    temp = a[i];
//                    a[i] = a[j];
//                    a[j] = temp;
//                    sout(a);
//                }
//            }
//        }

        for (int i = 0; i < a.length - 1; i++) {
            if (a[i] > a[i + 1]) {
                temp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = temp;
                i = -1;
                sout(a);
            }
        }


//        for(int i=0;i<a.length-1;i++){
//            for(int j=0;j<a.length-1-i;j++){
//                if(a[j]>a[j+1]){
//                    int tmp=a[j+1];
//                    a[j+1]=a[j];
//                    a[j]=tmp;
//                    sout(a);
//                }
//            }
//        }


    }

//    public static void quickSort(int[] arr, int low, int high) {
//        int i, j, temp, t;
//        if (low > high) {
//            return;
//        }
//        i = low;
//        j = high;
//        //temp就是基准位
//        temp = arr[low];
//
//        while (i < j) {
//            //先看右边，依次往左递减
//            while (temp <= arr[j] && i < j) {
//                j--;
//            }
//            //再看左边，依次往右递增
//            while (temp >= arr[i] && i < j) {
//                i++;
//            }
//            //如果满足条件则交换
//            if (i < j) {
//                t = arr[j];
//                arr[j] = arr[i];
//                arr[i] = t;
//                sout(arr);
////                System.out.println(run++ +" - "+JSON.toJSONString(arr));
//            }
//        }
//        //最后将基准为与i和j相等位置的数字交换
//        arr[low] = arr[i];
//        arr[i] = temp;
//        sout(arr);
////        System.out.println(run++ +" - "+JSON.toJSONString(arr));
//        //递归调用左半数组
//        quickSort(arr, low, j - 1);
//        //递归调用右半数组
//        quickSort(arr, j + 1, high);
//    }


}
